function String(value) {
	this.value = value;
}


String.prototype.charAt = function(index) {
	return this.value.charAt(index);
}

String.prototype.concat = function(str) {
	result = this.value + str.value;
	return new String(result);
}

String.prototype.endsWith = function(str) {
	var thisLength = this.value.length;
	var strLength = str.value.length;
	var index = thisLength - strLength;

	for(var i=0; i<strLength; i++){
		if(str.value.charAt(i) != this.value.charAt(index)){
			return false;
		}
		index++;
	}
	return true;
}

String.prototype.equals = function(str){
	if(this.value == str.value){
		return true;
	}
	return false;
}

String.prototype.length = function(str){
	return this.value.length;
}

String.prototype.replaceAll = function(originStr, replaceStr){
	var array = this.value.split(originStr.value);
	this.value = "";
	for(var i=0; i < (array.length-1); i++){
		this.value += array[i] + replaceStr.value;
	}
	this.value += array[array.length - 1];
}

String.prototype.split = function(str){
	var arrayStr = [];
	var array = this.value.split(str.value);

	for(var i=0; i<array.length; i++){
		arrayStr[i] = new String(array[i]);
	}

	return arrayStr;
}

String.prototype.substring = function(beginIndex, endIndex) {
	return new String(this.value.substring(beginIndex, endIndex));
}

String.prototype.startWith = function(str){
	for(var i=0; i<str.value.length; i++){
		if(this.charAt(i) != str.charAt(i)){
			return false;
		}
	}
	return true;
}


module.exports = String;